'use strict';

const Controller = require('egg').Controller;

class BlogController extends Controller {





    //查看博客
    async index() {

        try {

            //通过上下文对象来响应service中的blog中的get（）方法获取到后台的数据然后赋值给blogList
            const blogList = await this.ctx.service.blog.get();
            // console.log(blogList)

            //拿到数据后对数据进行一个获取成功的响应
            this.ctx.body = {
                code: 2000,
                msg: true,
                data: blogList
            }
        } catch (error) {
            //如果没有正确获取数据，进行一个失败的响应
            this.ctx.body = {
                code: 50000,
                msg: "获取数据失败"
            }

        }

    }

    //添加博客
    async create() {
        try {
            //通过上下文对象中的request来调用请求的对象
            const body = await this.ctx.request.body;

            // console.log(body)
            //调用createBlog()方法时传递的参数是body，body是一个对象，它的属性是blog,要添加的数据是body.blog,而这个blog属性中的数据是从前端传过来的数据
            //传递过来的应该是实参
            await this.ctx.service.blog.createBlog(body.blog);



            console.log()
            this.ctx.body = {
                code: 20000,
                msg: true
            }
        } catch (error) {

            this.ctx.body = {
                code: 50000,
                msg: false
            }

        }


    }



    //删除博客
    async destroy() {
        try {
            const id = await this.ctx.params.id; //获取到id
            // console.log("hello")
            await this.ctx.service.blog.deleteBlog(id);  //删除所得到的id
            this.ctx.body = {
                code: 20000,
                msg: true
            }

        } catch (error) {
            this.ctx.body = {
                code: 50000,
                msg: false
            }

        }
    }


    //更新博客
    async update() {
        try {
            const body = await this.ctx.request.body;

            const id = await this.ctx.params.id;
            console.log(id)
            //把从前台获取到的实参赋给updateBlog()方法
            await this.ctx.service.blog.updateBlog(id, body)

            this.ctx.body = {
                code: 20000,
                msg: blog
            }
        } catch (error) {
            this.ctx.body = {
                code: 50000,
                msg: false
            }

        }
        console.log(id)
    }






    // //获取博客列表的页面
    async getBlogList() {
        const { ctx } = this;
        let result = await this.ctx.service.blog.get();

        return await ctx.render("pc/blog.html", { result: result })

    }


    //获取博客详情页
    //通过id获取当前的页面，并且只展示当前id的数据到页面
    async getBlogDetail() {
        const { ctx } = this;

        const id = this.ctx.params.id;  //先跳转到当前的id页面下


        //跳转之后把跳转之后的得到的id当作实参传给getBlog(),
        //service层的getBlog()拿到id后开始进行数据库中的数据查找
        //当拿到service层下的数据后把值赋给result
        let result = await this.ctx.service.blog.getBlogl(id);
        // console.log(result)


        //返回页面的响应和数据
        return await ctx.render("pc/blogD.html", { result: result })
        // console.log(result)



    }






    //获取手机博客页面
    async getPblog() {
        const { ctx } = this;
        let data = await this.ctx.service.blog.get();
     /* console.log(data) */
        return await ctx.render("phone/phoneblog.html",{ data: data })
    }

    //获取手机博客详情页
    async getpBlogDetail(){
        const { ctx } = this;
        const id = this.ctx.params.id;
        let data =await this.ctx.service.blog.getBlogl(id);
        // console.log(data)

        return await this.ctx.render("phone/phoneBlogD.html",{data:data})

    }

}







module.exports = BlogController;